;;;    lambda-tube (λ-tube) - A youtube search API and application in scheme.
;;;    Copyright (C) 2008  Abhishek Mishra
;;;
;;;    This program is free software: you can redistribute it and/or modify
;;;    it under the terms of the GNU General Public License as published by
;;;    the Free Software Foundation, either version 3 of the License, or
;;;    (at your option) any later version.

;;;    This program is distributed in the hope that it will be useful,
;;;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;;    GNU General Public License for more details.

;;;    You should have received a copy of the GNU General Public License
;;;    along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;;    In this module we define all lambda-tube specific tasks which can be
;;;    run in the scheduler.

(module lt-tasks mzscheme
  (require (lib "class.ss")
           "lt-scheduler.scm")
  
  (provide download-task%)
  
  (define download-task%
    (class generic-task%
      
      (init-field video)
      
      (init-field download-folder)
      
      (init-field update-procedure)
      
      (init-field format)
      
      (augment execute)
      (define (execute)
        (send video set-format format)
        (if (equal? format "")
            (send video download-video download-folder update-procedure)
            (send video download-video-in-fmt download-folder update-procedure))
        (inner (void) execute))
      
      (super-new)
      ))
  )